/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Utilitarios;

import javax.swing.JOptionPane;

import java.awt.JobAttributes;
import java.util.Date;
public class DataCronograma {

public static int DiaSemana(int dia, int mes, int ano)
{ 
	int a,y,m,q,d;
	a=0;
	y=0;
	m=0;
	q=0;
	d=0;

	a=(14-mes)/12;
	y=ano-a;
	m=mes+12*a-2;
	q=dia+(31*m)/12+y+y/4-y/100+y/400;
	d=q%7;

	return d;
}
 public static String Diasemana(int a)
 {
	 String dia=null;

	 switch(a)
		{
			case 0: dia="Domingo";break;
			case 1: dia="Segunda-feira";break;
			case 2: dia="Terca-feira";break;
			case 3: dia="Quarta-feira";break;
			case 4: dia="Quinta-Feira";break;
			case 5: dia="Sexta-Feira";break;
			case 6: dia="Sabado";break;

		}

	 return dia;

 }

 public static boolean AnoBisx(int ano)
 {
	 boolean bisx=true;
	 if(ano%4==0) bisx=true;else bisx=false;
	 return bisx;
 }
 public static int numDiaAno(int dia, int mes, int ano)
 {
	 int numDiaAno=0;
	 int MesDia[][]=new int[12][32];

	 if(AnoBisx(ano)){
		MesDia[0][0]=0;
		MesDia[1][0]=31;
		MesDia[2][0]=60;
		MesDia[3][0]=91;
		MesDia[4][0]=121;
		MesDia[5][0]=152;
		MesDia[6][0]=182;
		MesDia[7][0]=213;
		MesDia[8][0]=244;
		MesDia[9][0]=274;
		MesDia[10][0]=305;
		MesDia[11][0]=335;

		if(mes==1)
		{
			for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<31;i++,Dia++)
			{
			MesDia[mes-1][1+i]=Dia;
			}
		}

		if(mes==2)
		{
			for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<29;i++,Dia++)
			{
			MesDia[mes-1][1+i]=Dia;
			}
		}

		if(mes==3)
		{
			for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<31;i++,Dia++)
			{
			MesDia[mes-1][1+i]=Dia;
			}
		}

		if(mes==4)
		{
			for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<30;i++,Dia++)
			{
			MesDia[mes-1][1+i]=Dia;
			}
		}
		if(mes==5)
		{
			for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<31;i++,Dia++)
			{
			MesDia[mes-1][1+i]=Dia;
			}
		}
		if(mes==6)
		{
			for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<30;i++,Dia++)
			{
			MesDia[mes-1][1+i]=Dia;
			}
		}
		if(mes==7)
		{
			for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<31;i++,Dia++)
			{
			MesDia[mes-1][1+i]=Dia;
			}
		}
		if(mes==8)
		{
			for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<31;i++,Dia++)
			{
			MesDia[mes-1][1+i]=Dia;
			}
		}
		if(mes==9)
		{
			for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<30;i++,Dia++)
			{
			MesDia[mes-1][1+i]=Dia;
			}
		}
		if(mes==10)
		{
			for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<31;i++,Dia++)
			{
			MesDia[mes-1][1+i]=Dia;
			}
		}
		if(mes==11)
		{
			for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<30;i++,Dia++)
			{
			MesDia[mes-1][1+i]=Dia;
			}
		}
		if(mes==12)
		{
			for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<31;i++,Dia++)
			{
			MesDia[mes-1][1+i]=Dia;
			}
		}

		return MesDia[mes-1][dia];
	 }else{

		    MesDia[0][0]=0;
			MesDia[1][0]=31;
			MesDia[2][0]=59;
			MesDia[3][0]=90;
			MesDia[4][0]=120;
			MesDia[5][0]=151;
			MesDia[6][0]=181;
			MesDia[7][0]=212;
			MesDia[8][0]=243;
			MesDia[9][0]=273;
			MesDia[10][0]=304;
			MesDia[11][0]=334;
			if(mes==1)
			{
				for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<31;i++,Dia++)
				{
				MesDia[mes-1][1+i]=Dia;
				}
			}

			if(mes==2)
			{
				for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<28;i++,Dia++)
				{
				MesDia[mes-1][1+i]=Dia;
				}
			}

			if(mes==3)
			{
				for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<31;i++,Dia++)
				{
				MesDia[mes-1][1+i]=Dia;
				}
			}

			if(mes==4)
			{
				for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<30;i++,Dia++)
				{
				MesDia[mes-1][1+i]=Dia;
				}
			}
			if(mes==5)
			{
				for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<31;i++,Dia++)
				{
				MesDia[mes-1][1+i]=Dia;
				}
			}
			if(mes==6)
			{
				for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<30;i++,Dia++)
				{
				MesDia[mes-1][1+i]=Dia;
				}
			}
			if(mes==7)
			{
				for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<31;i++,Dia++)
				{
				MesDia[mes-1][1+i]=Dia;
				}
			}
			if(mes==8)
			{
				for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<31;i++,Dia++)
				{
				MesDia[mes-1][1+i]=Dia;
				}
			}
			if(mes==9)
			{
				for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<30;i++,Dia++)
				{
				MesDia[mes-1][1+i]=Dia;
				}
			}
			if(mes==10)
			{
				for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<31;i++,Dia++)
				{
				MesDia[mes-1][1+i]=Dia;
				}
			}
			if(mes==11)
			{
				for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<30;i++,Dia++)
				{
				MesDia[mes-1][1+i]=Dia;
				}
			}
			if(mes==12)
			{
				for(int i=0 ,Dia=MesDia[mes-1][0]+1;i<31;i++,Dia++)
				{
				MesDia[mes-1][1+i]=Dia;
				}

			}


			return MesDia[mes-1][dia];
			}


 }

public static String numDiaAno(int numDiaAno,int ano)
{
	String data=null;
 int MesDia[][]=new int[12][32];

	 if(AnoBisx(ano)){
		 MesDia[0][0]=0;
			MesDia[1][0]=31;
			MesDia[2][0]=60;
			MesDia[3][0]=91;
			MesDia[4][0]=121;
			MesDia[5][0]=152;
			MesDia[6][0]=182;
			MesDia[7][0]=213;
			MesDia[8][0]=244;
			MesDia[9][0]=274;
			MesDia[10][0]=305;
			MesDia[11][0]=335;

			if(numDiaAno>MesDia[0][0]&& numDiaAno<=MesDia[1][0])
			{

				for(int i=0 ,Dia=MesDia[0][0]+1;i<31;i++,Dia++)
				{
					MesDia[0][1+i]=Dia;
					if(numDiaAno==MesDia[0][1+i]){
						data=1+i+"/01";


					}
				}

			}

			if(numDiaAno>MesDia[1][0]&& numDiaAno<=MesDia[2][0])
			{

				for(int i=0 ,Dia=MesDia[1][0]+1;i<29;i++,Dia++)
				{
					MesDia[1][1+i]=Dia;
					if(numDiaAno==MesDia[1][1+i])
					{
						data=1+i+"/02";


					}

				}

			}

			if(numDiaAno>MesDia[2][0]&& numDiaAno<=MesDia[3][0])
			{
				for(int i=0 ,Dia=MesDia[2][0]+1;i<31;i++,Dia++)
					{
						MesDia[2][1+i]=Dia;
						if(numDiaAno==MesDia[2][1+i])
						{
							data=1+i+"/03";


						}
					}

			}


			if(numDiaAno>MesDia[3][0]&& numDiaAno<=MesDia[4][0])
			{
				for(int i=0 ,Dia=MesDia[3][0]+1;i<30;i++,Dia++)
					{
						MesDia[3][1+i]=Dia;
						if(numDiaAno==MesDia[3][1+i])
						{
							data=1+i+"/04";


						}
					}

			}

			if(numDiaAno>MesDia[4][0]&& numDiaAno<=MesDia[5][0])
			{
				for(int i=0 ,Dia=MesDia[4][0]+1;i<31;i++,Dia++)
					{
						MesDia[4][1+i]=Dia;
						if(numDiaAno==MesDia[4][1+i])
						{
							data=1+i+"/05";


						}
					}

			}

			if(numDiaAno>MesDia[5][0]&& numDiaAno<=MesDia[6][0])
			{

				for(int i=0 ,Dia=MesDia[5][0]+1;i<30;i++,Dia++)
					{
						MesDia[5][1+i]=Dia;
						if(numDiaAno==MesDia[5][1+i])
						{
							data=1+i+"/06";


						}
					}

			}

			if(numDiaAno>MesDia[6][0]&& numDiaAno<=MesDia[7][0])
			{
				for(int i=0 ,Dia=MesDia[6][0]+1;i<31;i++,Dia++)
					{
						MesDia[6][1+i]=Dia;
						if(numDiaAno==MesDia[6][1+i])
						{
							data=1+i+"/07";


						}
					}

			}
			if(numDiaAno>MesDia[7][0]&& numDiaAno<=MesDia[8][0])
			{

				for(int i=0 ,Dia=MesDia[7][0]+1;i<31;i++,Dia++)
					{
						MesDia[7][1+i]=Dia;
						if(numDiaAno==MesDia[7][1+i])
						{
							data=1+i+"/08";


						}
					}

			}

			if(numDiaAno>MesDia[8][0]&& numDiaAno<=MesDia[9][0])
			{
				for(int i=0 ,Dia=MesDia[8][0]+1;i<30;i++,Dia++)
					{
						MesDia[8][1+i]=Dia;
						if(numDiaAno==MesDia[8][1+i])
						{
							data=1+i+"/09";

						}
					}

			}

			if(numDiaAno>MesDia[9][0]&& numDiaAno<=MesDia[10][0])
			{

				for(int i=0 ,Dia=MesDia[9][0]+1;i<31;i++,Dia++)
					{
						MesDia[9][1+i]=Dia;
						if(numDiaAno==MesDia[9][1+i])
						{
							data=1+i+"/10";


						}
					}

			}
			if(numDiaAno>MesDia[10][0]&& numDiaAno<=MesDia[11][0])
			{

				for(int i=0 ,Dia=MesDia[10][0]+1;i<30;i++,Dia++)
					{
						MesDia[10][1+i]=Dia;
						if(numDiaAno==MesDia[10][1+i])
						{
							data=1+i+"/11";


						}
					}

			}

			if(numDiaAno>MesDia[11][0])
			{
				for(int i=0 ,Dia=MesDia[11][0]+1;i<31;i++,Dia++)
					{
						MesDia[11][1+i]=Dia;
						if(numDiaAno==MesDia[11][1+i])
						{
							data=1+i+"/12";

						}
					}

			}
	 } else{
		 MesDia[0][0]=0;
			MesDia[1][0]=31;
			MesDia[2][0]=59;
			MesDia[3][0]=90;
			MesDia[4][0]=120;
			MesDia[5][0]=151;
			MesDia[6][0]=181;
			MesDia[7][0]=212;
			MesDia[8][0]=243;
			MesDia[9][0]=273;
			MesDia[10][0]=304;
			MesDia[11][0]=334;

			if(numDiaAno>MesDia[0][0]&& numDiaAno<=MesDia[1][0])
			{

				for(int i=0 ,Dia=MesDia[0][0]+1;i<31;i++,Dia++)
				{
					MesDia[0][1+i]=Dia;
					if(numDiaAno==MesDia[0][1+i])
					{
						data=1+i+"/01";


					}
				}
			}

			if(numDiaAno>MesDia[1][0]&& numDiaAno<=MesDia[2][0])
			{

				for(int i=0 ,Dia=MesDia[1][0]+1;i<28;i++,Dia++)
				{
					MesDia[1][1+i]=Dia;
					if(numDiaAno==MesDia[1][1+i]){
						data=1+i+"/02";


				}

			}
			}

			if(numDiaAno>MesDia[2][0]&& numDiaAno<=MesDia[3][0])
			{
				for(int i=0 ,Dia=MesDia[2][0]+1;i<31;i++,Dia++)
					{
						MesDia[2][1+i]=Dia;
						if(numDiaAno==MesDia[2][1+i])
						{
							data=1+i+"/03";


						}
					}

			}


			if(numDiaAno>MesDia[3][0]&& numDiaAno<=MesDia[4][0])
			{
				for(int i=0 ,Dia=MesDia[3][0]+1;i<30;i++,Dia++)
					{
						MesDia[3][1+i]=Dia;
						if(numDiaAno==MesDia[3][1+i])
						{
							data=1+i+"/04";

						}
					}
			}

			if(numDiaAno>MesDia[4][0]&& numDiaAno<=MesDia[5][0])
			{
				for(int i=0 ,Dia=MesDia[4][0]+1;i<31;i++,Dia++)
					{
						MesDia[4][1+i]=Dia;
						if(numDiaAno==MesDia[4][1+i])
						{
							data=1+i+"/05";

						}
					}
			}

			if(numDiaAno>MesDia[5][0]&& numDiaAno<=MesDia[6][0])
			{

				for(int i=0 ,Dia=MesDia[5][0]+1;i<=30;i++,Dia++)
					{
						MesDia[5][1+i]=Dia;
						if(numDiaAno==MesDia[5][1+i])
						{
							data=i+1+"/06";

						}
					}
			}

			if(numDiaAno>MesDia[6][0]&& numDiaAno<=MesDia[7][0])
			{
				for(int i=0 ,Dia=MesDia[6][0]+1;i<31;i++,Dia++)
					{
						MesDia[6][1+i]=Dia;
						if(numDiaAno==MesDia[6][1+i])
						{
							data=1+i+"/07";

						}
					}
			}
			if(numDiaAno>MesDia[7][0]&& numDiaAno<=MesDia[8][0])
			{

				for(int i=0 ,Dia=MesDia[7][0]+1;i<31;i++,Dia++)
					{
						MesDia[7][1+i]=Dia;
						if(numDiaAno==MesDia[7][1+i])
						{
							data=1+i+"/08";


						}
					}
			}

			if(numDiaAno>MesDia[8][0]&& numDiaAno<=MesDia[9][0])
			{
				for(int i=0 ,Dia=MesDia[8][0]+1;i<30;i++,Dia++)
					{
						MesDia[8][1+i]=Dia;
						if(numDiaAno==MesDia[8][1+i])
						{
							data=1+i+"/09";


						}
					}
			}

			if(numDiaAno>MesDia[9][0]&& numDiaAno<=MesDia[10][0])
			{

				for(int i=0 ,Dia=MesDia[9][0]+1;i<31;i++,Dia++)
					{
						MesDia[9][1+i]=Dia;
						if(numDiaAno==MesDia[9][1+i])
						{
							data=1+i+"/10";


						}
					}
			}
			if(numDiaAno>MesDia[10][0]&& numDiaAno<=MesDia[11][0])
			{

				for(int i=0 ,Dia=MesDia[10][0]+1;i<30;i++,Dia++)
					{
						MesDia[10][1+i]=Dia;
						if(numDiaAno==MesDia[10][1+i])
						{
							data=1+i+"/11";


						}
					}
			}

			if(numDiaAno>MesDia[11][0])
			{
				for(int i=0 ,Dia=MesDia[11][0]+1;i<31;i++,Dia++)
					{
						MesDia[11][1+i]=Dia;
						if(numDiaAno==MesDia[11][1+i])
						{
							data=1+i+"/12";


						}
					}

			}
			}


	 return data;

}


	public static void main (String args []){
/*
	long dias=1000*60*60*24;




	Date data1=new Date();


	String Dia=null;
	int DIA[]=new int[2],MES[]=new int[2],ANO[]=new int[2];
	String data=null,Sdata=null;
	int diaSemana=4;

	data="";
	DIA[0]=12;
	MES[0]=06;
	ANO[0]=2011;

	DIA[1]=12;
	MES[1]=7;
	ANO[1]=2011;

	if(DiaSemana(DIA[0], MES[0], ANO[0])==diaSemana)
		{
			data+="\n"+DIA[0]+"/"+ MES[0];
		}

	for(int inicio=numDiaAno(DIA[0], MES[0], ANO[0]);inicio<=numDiaAno(DIA[1], MES[1], ANO[1]);inicio++)
		{
			Sdata=numDiaAno(inicio,ANO[0]);
			if(DiaSemana(Integer.parseInt(Sdata.substring(0, Sdata.length()-3)),Integer.parseInt( Sdata.substring(Sdata.length()-2, Sdata.length())), ANO[0])==diaSemana)
				{
				data+="\n"+Sdata;
				}

		}

	
	JOptionPane.showMessageDialog(null,Sdata.substring(Sdata.length()-2, Sdata.length()));
	JOptionPane.showMessageDialog(null,Sdata.substring(0, Sdata.length()-3));
	JOptionPane.showMessageDialog(null,data);
	JOptionPane.showMessageDialog(null, numDiaAno(181,ANO[0]));
	long tempo1=data1.getTime();



	data1.setYear(2011);







	JOptionPane.showMessageDialog(null,"Dias "+tempo1/dias);


	System.exit(0);


*/

	}

}

